/* 
 * File:   _draw_primitives.h
 * Author: gustavo
 *
 * Created on November 23, 2011, 6:13 AM
 */

#ifndef _DRAW_PRIMITIVES_H
#define	_DRAW_PRIMITIVES_H

#ifdef	__cplusplus
extern "C" {
#endif

#include "../../imp_types.h"
	
	void _set_array(unsigned char * data, int width, int height, int row_stride);

	inline void _put_pixel(int x, int y);

	void _bresenham_line(int x0, int y0, int x1, int y1);

	void _bresenham_line_incremental_x(int x1, int y1, int x2, int y2);

	void _bresenham_line_incremental_x2(int xl, int yl, int xr, int yr);

	void _bresenham_circle(int xm, int ym, int ray);

	void _ellipse(int xc, int yc, int a, int b, real deg);

	void _scan_line_poly_fill(Ref2 * p, int n);

	void _scan_line_poly_fill_fast(Ref2 * p, int n);



#ifdef	__cplusplus
}
#endif

#endif	/* _DRAW_PRIMITIVES_H */

